using System;
using System.Collections.Generic;

namespace SpellCore.Tests
{
    internal class MockCorrectnessProvider : ISpellCheckEngine
    {
        private List<string> goodWords=new List<string>();
        public CheckingResult GetWordStatus(string word)
        {
            if (goodWords.Contains(word))
            {
                return CheckingResult.Good;
            }
            return CheckingResult.Unknown;
        }

        public bool CanSupportAdditions()
        {
            return true;
        }

        public void AddWordAsGood(string word)
        {
            goodWords.Add(word);
        }

        public bool CanSupportBadWords()
        {
            return false;
        }

        #region ISpellCheckEngine Members

        /// <summary>
        /// Adds a word to the known bad word store
        /// </summary>
        /// <param name="word"></param>
        /// <exception cref="NotSupportedException">When CanSupportBadWords is false</exception>
        public void AddWordAsBad(string word)
        {
            throw new NotImplementedException();
        }

        #endregion

        public bool CanProvideSuggestions()
        {
            return false;
        }

        public IEnumerable<SimilarityCheckResult> GetSuggestions(string word)
        {
            throw new NotImplementedException();
        }

    }
}